package cc.rengu.igas.channel.nucc.core.realize;


import cc.rengu.oltp.service.common.entity.CertInfo;

/**
 * 加签验证加密解密服务,网络支付清算平台用
 */
public interface NuccEncSignService {
    /**
     * 加签
     *
     * @param certInfo
     * @param signData
     * @return 生成的签名串
     * @throws Exception
     */
    String generateSignString(CertInfo certInfo, String signData) throws Exception;

    /**
     * 校验数字签名
     *
     * @param certInfo
     * @param sign      数字签名
     * @param signBlock 生成数字签名的字符串
     * @return true-成功，false-失败
     */
    boolean verifySignString(CertInfo certInfo, String sign, String signBlock) throws Exception;


    /**
     * 生成加密字符串
     *
     * @param certInfo 证书信息
     * @param data     需要加密的字符串
     * @return 加密后的字符串
     */
    String encryptedInfo(CertInfo certInfo, String data) throws Exception;

    /**
     * 解密字符串
     *
     * @param certInfo 证书信息
     * @param encData  待解密数据
     * @return 解密后的字符串
     */
    String descryptedInfo(CertInfo certInfo, String encData) throws Exception;
}
